/*
 * @lc app=leetcode.cn id=283 lang=cpp
 *
 * [283] 移动零
 */

// @lc code=start
// #include <iostream>
// #include <vector>
// using namespace std;

class Solution {
   public:
    void moveZeroes(vector<int>& nums) {
        int fast = 0, slow = 0;

        // 遍历数组中的非零元素
        while (fast < nums.size()) {
            if (nums[fast] != 0) {
                nums[slow] = nums[fast];
                fast++;
                slow++;
            } else {
                fast++;
            }
        }

        // 将数组中的剩余元素置零
        while (slow < nums.size()) {
            nums[slow] = 0;
            slow++;
        }
    }
};
// @lc code=end
